package com.atguigu.crowd.mvc.config;

import com.atguigu.crowd.entity.Admin;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User;

import java.util.List;


/**
 * information
 * 考虑到user对象中仅仅包含账号和密码，为了得到原始的Admin对象，专门创建这个类对user类进行扩展
 * Created by Administrator on 2020/3/26.
 */
public class SecurityAdmin extends User {

    private static final long serialVersionUID =1L;

    //原始的Admin对象，包含Admin的所有信息
    private Admin originalAdmin;

    public SecurityAdmin(
            // 传入原始的Admin对象
            Admin originalAdmin,

            // 创建角色、权限信息的集合
            List<GrantedAuthority> authorities) {
        //调用父类的构造器
        super(originalAdmin.getLoginAcct(), originalAdmin.getUserPswd(), authorities);
        //给本类的original赋值
        this.originalAdmin=originalAdmin;
        //将原始admin对象中的密码清除
        this.originalAdmin.setUserPswd(null);

    }
    //对外提供获取原始admin对象的get方法
    public Admin getOriginalAmin(){

        return originalAdmin;
    }

}
